package com.ruoyi.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 客户发票对象 yt_customer_invoice
 * 
 * @author magichaohao
 * @date 2021-05-13
 */
public class YtCustomerInvoice extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 客户发票id */
    private Long clientInvoiceId;

    /** 银行账单id */
    private Long billId;

    /** 开票时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开票时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date invoiceDate;

    /** 客户id */
    @Excel(name = "客户id")
    private Long customerId;

    /** 发票代码 */
    @Excel(name = "发票代码")
    private String invoiceCode;

    /** 发票号码 */
    @Excel(name = "发票号码")
    private String invoiceNumber;

    /** 工程名称 */
    @Excel(name = "工程名称")
    private String projectName;

    /** 工程地点 */
    @Excel(name = "工程地点")
    private String projectSite;

    /** 税率 */
    @Excel(name = "税率")
    private Long taxRate;

    /** 开票金额 */
    @Excel(name = "开票金额")
    private BigDecimal invoiceAmount;

    /** 用户信息 */
    private YtCustomerMsg ytCustomerMsg;

    public void setClientInvoiceId(Long clientInvoiceId) 
    {
        this.clientInvoiceId = clientInvoiceId;
    }

    public Long getClientInvoiceId() 
    {
        return clientInvoiceId;
    }
    public void setBillId(Long billId) 
    {
        this.billId = billId;
    }

    public Long getBillId() 
    {
        return billId;
    }
    public void setInvoiceDate(Date invoiceDate) 
    {
        this.invoiceDate = invoiceDate;
    }

    public Date getInvoiceDate() 
    {
        return invoiceDate;
    }
    public void setCustomerId(Long customerId) 
    {
        this.customerId = customerId;
    }

    public Long getCustomerId() 
    {
        return customerId;
    }
    public void setInvoiceCode(String invoiceCode) 
    {
        this.invoiceCode = invoiceCode;
    }

    public String getInvoiceCode() 
    {
        return invoiceCode;
    }
    public void setInvoiceNumber(String invoiceNumber) 
    {
        this.invoiceNumber = invoiceNumber;
    }

    public String getInvoiceNumber() 
    {
        return invoiceNumber;
    }
    public void setProjectName(String projectName) 
    {
        this.projectName = projectName;
    }

    public String getProjectName() 
    {
        return projectName;
    }
    public void setProjectSite(String projectSite) 
    {
        this.projectSite = projectSite;
    }

    public String getProjectSite() 
    {
        return projectSite;
    }
    public void setTaxRate(Long taxRate) 
    {
        this.taxRate = taxRate;
    }

    public Long getTaxRate() 
    {
        return taxRate;
    }
    public void setInvoiceAmount(BigDecimal invoiceAmount) 
    {
        this.invoiceAmount = invoiceAmount;
    }

    public BigDecimal getInvoiceAmount() 
    {
        return invoiceAmount;
    }

    public YtCustomerMsg getYtCustomerMsg() {
        return ytCustomerMsg;
    }

    public void setYtCustomerMsg(YtCustomerMsg ytCustomerMsg) {
        this.ytCustomerMsg = ytCustomerMsg;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("clientInvoiceId", getClientInvoiceId())
            .append("billId", getBillId())
            .append("invoiceDate", getInvoiceDate())
            .append("customerId", getCustomerId())
            .append("invoiceCode", getInvoiceCode())
            .append("invoiceNumber", getInvoiceNumber())
            .append("projectName", getProjectName())
            .append("projectSite", getProjectSite())
            .append("taxRate", getTaxRate())
            .append("invoiceAmount", getInvoiceAmount())
            .toString();
    }
}
